The disclosed technology relates generally to decoding data, and more particularly to decoding low-density parity check (LDPC) codes.
With the continuing demand for high-reliability transmission of information in digital communication and storage systems, and with the rapid increase in available computational power, various coding and decoding techniques have been investigated and applied to increase the performance of these systems. One such coding technique, LDPC coding, was first proposed in the 1960s, but was not used until the late 1990s when researchers began to investigate iterative coding and decoding techniques.
LDPC codes are among the few known error control coding techniques capable of transmitting information at a rate close to the Shannon limit (also known as channel capacity). LDPC codes can be regular or irregular, have a linear or cyclic encoding matrix, and can be decoded in a myriad of ways, ranging in complexity and error performance.
However, there are a few concerns with LDPC codes. The error floor of LDPC codes may be of particular concern. In many applications, low error floors are required to enable applications to perform with high reliability (e.g., low bit or sector error rate). However, depending on the LDPC code, there may be certain combinations of failures (referred to as trapping sets or near codeword failures) that prevent applications from achieving a low error floor.